Red flag alerts & enhancements

Contents|Previous|Next
Red flag alerts & enhancements

The following documentation discusses issues that serve as important warnings or isssues that are new enhancements with this release.

These issues may provide clues that may help if you are a new user of the GNU tools or if you run into problems with the GNUPro tools.

- General issues
- Compiler issues
- Debugger issues
- Utilities issues

See also Issues from previous releases for issues that may be pertinent from versions of GNUPro Toolkit prior to this release.

For help with terms that are unfamiliar, see Cygnus glossary.

General issues
The following documentation discusses new features and alerts for this release of GNUPro Toolkit.

- There is new support for several hosts with this release:

- Hewlett Packard’s HP-UX 11.0
- Hitachi’s SH4
- RedHat’s Linux 5.1/5.2/6.0, Caldera’s Linux 2.2, S.u.S.E.’s Linux 6.1
- Sun’s SPARC Solaris 7.0
- Microsoft’s Windows 98

- See Embedded cross-configuration support for the targets and their output format, and see GNUPro Tools for Embedded Systems for details of usage with specific hosts and targets.
- For reporting problems with this or future releases, Cygnus now has only website support. See How to report problems for information about using Web Support:

`http://support.cygnus.com/`

- There are now different and improved installation procedures for GNUPro Toolkit, achieving better compression and archiving functionality.
- GNUPro Toolkit now comes with Source NavigatorTM, a source code comprehension tool. With Source Navigator, developers can extract information from existing code in C, C++, Java, Tcl, `[incr tcl]` (the C++ extension for Tcl), FORTRAN, Cobol, and assembly programs and use this information to build project databases. The database represents internal program structures and relationships between program components. Source-Navigator then uses this database to query symbols and relationships between components and graphically display them.
- eCosTM (embedded Cygnus operating system), a full-featured, run-time solution under open-source licensing terms is available for using with the GNUPro tools. eCos, a royalty-free, highly configurable, application-specific operating system, allows embedded system developers to focus on differentiating their products instead of developing, maintaining, or configuring proprietary, real-time kernels. Details on eCos are available online at the following location.

`http://sourceware.cygnus.com/ecos/`

- The GNUPro visual debugger, Cygnus InsightTM, formerly known as GDBTk has many significant changes; see Debugger issues and Working with Cygnus Insight, the visual debugger, for details regarding usage and features of Insight.
- There are several new C library functions; see GNUPro C Library for specific functions and usage.
- See Embedded cross-configurations supported, new to this release.
See GNUPro Tools for Embedded Systems for details about using the tools for developing programs in the Win32 environment.
Rebuilding is now available for the Windows operating system. See Rebuilding from source for details and instructions.

- There is now support for several new targets with this release.
Table 1:Embedded cross-configurations supported, new to this release *

Host | Target | Output Format
--- | --- | ---
Linux RHS 5.2 | ARM 7/7T | ELF
Hitachi H8/300 | ELF
Hitachi H8/300H | ELF
Hitachi H8/S | ELF
Hitachi SH1/2/3/4 | ELF
PowerPC | ELF
Sun MicroSPARC | ELF
Sun UltraSPARC | ELF
Toshiba TX39 | ELF
SPARC Solaris 2.5 | Hitachi SH4 | ELF
Matsushita MN10200 | ELF
Matsushita MN10300 | ELF
Matsushita Pana-X | ELF
Mitsubishi D10V | ELF
Mitsubishi M32R | ELF
NEC MIPS VR 5400 | ELF
SPARC SunOS 4.1.4 | Hitachi SH4 | ELF
Matsushita MN10200 | ELF
Matsushita MN10300 | ELF
Mitsubishi M32R | ELF
NEC MIPS VR 5400 | ELF
Sun MicroSPARC | ELF
Sun UltraSPARC | ELF
Windows†NT4.0/95/98 | Hitachi SH4 | ELF
Matsushita MN10200 | ELF
Matsushita MN10300 | ELF
Matsushita Pana-X | ELF
Mitsubishi M32R | ELF
Sun MicroSPARC | ELF
Sun UltraSPARC | ELF

* | For information on specific targets, see GNUPro Tools for Embedded Systems.
† | IMPORTANT: Windows 95/98 have no support for rebuilding, only NT.

- Specific target boards have extended support packages, providing the following features:

> - Cygmon support for using the CYGNUS ROM monitor for ARM/THUMB, NEC MIPS VR4100, MIPS VR 4300, MIPS VR 5`xxx` (5400, 5432, 5464 [N32 mode only]), Matsushita MN10200 and MN10300, MicroSPARC, Mitsubishi M32R, Motorola M68K, SPARClite, and Toshiba TX39 processors
> - Board initialization code for PowerPC for MBX 8`xx`, Cogent 860, ADS 8`xx`
> - libstub, which is the necessary code to run GDB protocol, for PowerPC for MBX 8`xx`, Cogent 860, ADS 8`xx`
> - Linker scripts enabling mapping of code, data or devices, for PowerPC for MBX 8`xx`, Cogent 860, ADS 8`xx`

- With the growing popularity of the Win32 environment, the GNUPro tools now include Cygwin, a porting layer for applications that are generally functional only in UNIX environments. Cygwin has the following features that are new to this release (see also Cygwin: a free Win32 porting layer for UNIX applications, Cygwin User’s Guide and Cygwin API Reference in GNUPro Tools for Embedded Systems for details):
- Improved support for Windows 95/98
- Windows NT rebuilding does have support; use rebuilding with caution with Windows 95/98 systems, since those operating systems have no support for rebuilding
- 10%-20% speed improvement for `configure`/`make`
- Capability of interrupting the I/O using a Ctrl-c keystroke combination, especially important for GDB and serial I/O to target boards
- A diagnostic tool for debugging installation problems
- Improved emulation of UNIX termios serial I/O
- Improved handling of select() call with serial I/O
- Console input for the Ctrl-u, `Ctrl-w`, `Ctrl-d` keystroke combinations, operating as expected to mimic more closely UNIX functionality
- Command-line ‘`@`’ construct for long command lines now more closely mimics other Win32 utilities; defeat this construct by quoting
- Improved thread safety
- Limited support for POSIX pthreads
- `gcc -pipe` operability
- Inclusion of the termcap library
- Improved POSIX path name handling and mount table manipulation
- Significant improvements in linking with dlltool, allowing for Windows users to write DLLs (Dynamically Linked Libraries); the resource compiler, `windres`, is also provided with the native Windows GNUPro tools and all tools are usable from the Microsoft command line prompt, with full support for normal Windows pathnames. The following features are improvements with the linker and the `dlltool`:

- Building a DLL in one pass using the `-shared` qualifier
- Linking by using DLL on command line
- Building and importing `.a` at the same time as a DLL
- Accepting `.def` files on the command line (as if they were objects)
- Producing a `.def` file corresponding to a final DLL
- Auto-correcting `stdcall` or `cdecl` symbol mismatches (with warnings)
- Auto-exporting of all global functions

- There have been many GNU compiler improvements for the Cygwin tool:

- Using the ‘`declspec`’ method of labelling variables and functions for export/import to a DLL
- GDB native improvements
- Attaching to a running process
- Managing Windows threads
- Allowing for interrupting using Ctrl-c
- Using the `passwd` command to change UNIX and Windows passwords
- More UNIX-like output from the ‘`ps`’ command
- Native `expect` operability

- Regarding Year 200 Compliance (Y2K), Cygnus has the following three exceptions to its compliance agreement.

- Applications that call the `strftime()` function may encounter erroneous date data. `strftime()` is a part of the `libc` component of the GNUPro embedded library, `newlib`. This problem is limited to time values using the `%y` format that return a two-digit year. It is not a problem for time values using the %Y format which returns a four-digit year. Affects releases 98r1, 97r2.
- Applications that use the CMA101 motherboard from Cogent Systems will encounter erroneous date data when using GNUPro MIPS toolkits to read the real-time clock (RTC) on the motherboard. Affects releases 98r2, 98r1, 97r2.
- Y2K non-compliance is limited to the Cygnus-provided PowerPC instruction set simulator included with GNUPro Toolkit for embedded PowerPC. The simulator does not return real-time clock values greater than 99 in the year field. However, no library code from Cygnus reads these values. In addition, applications running on actual embedded microprocessors will not encounter this problem. Affects releases 98r2, 98r1, 97r2.

For the complete list of supported hosts and targets, see Embedded cross-configuration support and see GNUPro Tools for Embedded Systems for details about specific hosts and targets.

# Compiler issues

The following documentation concerns enhancement issues that may affect the API or ABI when working with the GNUPro compiler tools.
For documentation specific to a particular processor, see the specific processor’s documentation as well as GNUPro Tools for Embedded Systems.

The following issues are GCC improvements.

- There have been many GNU compiler improvements for the Cygwin tool:

- Using the ‘`declspec`’ method of labelling variables and functions for export/import to a DLL
- GDB native improvements
- Attaching to a running process
- Managing Windows threads
- Allowing for interrupting using Ctrl-c
- Using the `passwd` command to change UNIX and Windows passwords
- More UNIX-like output from the ‘`ps`’ command
- Native `expect` operability

- Target-independent register allocation has the following enhancements:

- Binary compatibility
- Selective linking
- New `regmove` optimizations
- Additional `reload` inheritance
- Local spilling in `reload`
- Post `reload` flow analysis
- Weak and alias symbol handling
- Constant equivalence handling for multiple-times set pseudos
- Equivalences of pseudo-ops for handling stack slot addresses

- The PowerPC 750 processor now has support.
- There is now capability for using PowerPC scheduling of prologue and epilogue.
- Comparisons optimization is simplified, transforming combinations of comparisons.
- Intel’s i960 64-bit implementations are usable.
- A data layout consistency testsuite is operative.

The following issues are G++ improvements.

- The C++ compiler’s past behavior of being rather lenient in the enforcement of language rules has changed to bring existing code bases into compliance with the current C++ standard. `g++` now issues errors instead of warnings for violations of the standard. Use `-fpermissive` to return to the previous behavior.
- Handling of pointers to member functions is more efficient for classes with no virtual functions.
- A new option is available, `-fvtable-gc`, which discards unused virtual functions, if the GNUPro linker for your target also supports it for your system. Caution is necessary with `-fvtable-gc`, since error warnings may emit from the assembler.
- C string constants are now of type, `const char n`, rather than type, `char n` (use `-fno-const-strings` to revert to the old behavior).
- Many obsolete options have been removed: `-fmemoize-lookups`, `-fsave-memoized`, `+e`, `-fall-virtual`, `-fenum-int-equivalence`, and `-fno-nonnull-objects`.
- There have been some changes to the `libstdc++` library:

- Upgrade of STL to the SGI STL 3.11 release
- Various fixes related to namespaces
- String class fixes
- Fixes to the Makefile
- Additional library tests

- PowerPC table-driven exception handling is operative.
- `-felide-constructors`, which keeps temporary objects rather than optimizing them away, is now on by default; this does not represent a change in the compiler’s behavior, just the meaning of the flag.
- Implicit function declarations are now suppressed by `-fstrict-prototype`.
- A new option, `-Wnon-template-friend`, suppresses a warning about a friend declaration inside a template class that declares a non-template function.
- References to functions are now supported.
- A new option, `-fno-implicit-inline-templates`, suppresses out-of-line copies of implicitly instantiated inline template functions, which are normally generated even with `-fno-implicit-templates` (in order that the same set of explicit instantiations is needed with or without optimization).
- For overload resolution, type conversion operators are treated as always coming from the argument’s class, even if they are really inherited.
- Many small violations are newly diagnosed.
- An explicit specialization of a static data member template is only considered a definition if it has an initializer.

## Debugger issues

The following documentation concerns the enhancement issues for the GNUPro debugger tools.

- Continued enhancements have improved the GNUPro visual debugger, Cygnus Insight (formerly known as GDBTk).
See Working with Cygnus Insight, the visual debugger for details regarding usage and features of Insight.

- The Function Browser window enables interaction with the Source Window for examining functions in source code using a dialog box for entering text, and for declaring functions as static or as regular expressions.
- A new Threads window is available for working with threads. Threads functionality is not available for all target operating systems.
- There is improved C++ handling. However, when debugging C++ code, breakpoints and exceptions may not work and, so, the functionality of the Breakpoints window may be inoperable.
- Improvements make for faster variable display and update.
- IntrospectTM is a tracing facility that enables defining a trace experiment, starting and stopping trace data collection, and browsing the trace data that Insight collects.
Tracepoint functionality is not available for all hosts and targets.

- The GNU debugger, GDB, is going through many changes in its emergence as version 5, available in a 1999 release. Some of the changes that have been made include the following features.

- There is now thread support for Windows NT4.0/95 operating systems, even though thread functionality is not available for all targets.
- Remote protocol can now use 64-bit addresses for memory.
- Remote protocol can get more information about threads.
- There is control over overload and opaque type resolution for C++ programs.
- There have been some additional Hewlett Packard improvements:

- PA 2.0 support
- HP-UX kernel thread support
- Hardware watchpoints for HP-UX
- Catchpoints for HP-UX (catchpoints can stop on designated types of events, such as fork(), vfork(), or shared library loading)
- Ability to follow forks on HP-UX

Utilities issues
The following documentation concerns enhancement issues for GNUPro utilities.

- The GNU linker tool has improved function and variable linking since the addition of a few supported targets (see Embedded cross-configuration support for the complete listing of targets). This linking allows for selecting specific functions and variables in an object file when configuring, whereby the linking selectively (or explicitly) includes those libraries in the linking instruction. See the linker documentation for specific information; for instance, see Overview of `ld`, the GNU linker and Linker scripts in Using `ld` in GNUPro Utilities.
- For specific assembler or linker details, consult the specific processor’s documentation and GNUPro Tools for Embedded Systems.

Top|Contents|Previous|Next